package com.ego.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ego.product.po.Category;
import com.ego.product.vo.SecondLevelCategoryVo;

import java.util.List;
import java.util.Map;

/**
 * @author KamTang
 * @program: ego
 * @description 商品三级分类服务层
 * @date 2022-11-13 12:56:14
 */
public interface CategoryService extends IService<Category> {
    /**
     * 树型结构展示商品三级分类
     * @return 商品分类
     */
    List<Category> cascade();

    /**
     * 根据分类ID获取分类路径
     * @param categoryId 分类ID
     * @return 分类路径数组
     */
    Long[] getCategoryPath(Long categoryId);

    /**
     * 分类修改后，其他表中有关分类字段也需要更新
     * @param category 分类
     */
    void updateCascade(Category category);

    /**
     * 获取一级分类
     * @return @see
     * @see Category
     */
    List<Category> getTopCategory();

    /**
     * 获取封装好的分类json数据
     * @return
     */
    Map<String, List<SecondLevelCategoryVo>> getCategoryJson();
}

